#include <hip/hip_runtime.h>
#include <iostream>

// 核函数，故意触发空指针解引用错误
__global__ void coredump_kernel() {
    int *null_ptr = nullptr;
    // 尝试对空指针进行解引用，会触发错误
    *null_ptr = 1;
}

int main() {
    // 配置线程块和网格
    dim3 dimBlock(1);
    dim3 dimGrid(1);

    // 启动核函数
    hipLaunchKernelGGL(coredump_kernel, dimGrid, dimBlock, 0, 0);

    // 同步设备，确保核函数执行完成
    hipError_t err = hipDeviceSynchronize();
    if (err != hipSuccess) {
        std::cerr << "HIP synchronization error: " << hipGetErrorString(err)
                  << std::endl;
    }

    return 0;
}